package tt.com.warehousemanager.service;

import com.baomidou.mybatisplus.extension.service.IService;
import tt.com.common.model.YxCommonWarehouseStock;
import tt.com.common.model.YxCommonWarehouseStockRecord;
import tt.com.common.util.PageUtil;

import java.util.List;

/**
 * @author Czycka
 * @date 2022/8/18 17:22
 * @description 仓库物品服务类类接口
 */
public interface WarehouseStockService extends IService<YxCommonWarehouseStock> {
    /**
     * 仓库入库
     *
     * @param record 库存实体类
     * @param userId 操作人id
     * @return 受影响行数
     */
    Integer inStock(YxCommonWarehouseStockRecord record, String userId);

    /**
     * 批量入库
     *
     * @param records 入库记录集合
     * @param userId 操作人id
     * @return 状态码 0 为出错
     */
    Integer inStockOfBatch(List<YxCommonWarehouseStockRecord> records, String userId);

    /**
     * 仓库出库
     *
     * @param record 仓库记录实体类
     * @param userId 操作人id
     * @return 库存状况 -2: 库存不足无法出库 -1: 库存达到预警 其他: 正常出库
     */
    Integer outStock(YxCommonWarehouseStockRecord record, String userId);

    /**
     * 批量出库
     * @param records 出库记录集合
     * @param userId 操作人id
     * @return 库存状况 -2: 库存不足无法出库 -1: 库存达到预警 其他: 正常出库
     */
    Integer outStockOfBatch(List<YxCommonWarehouseStockRecord> records, String userId);

    /**
     * 分页查询库存信息
     *
     * @param pageUtil 当前页和每页显示数量
     * @return 分页类
     */
    PageUtil showByPage(PageUtil pageUtil);
}
